package com.cancer.common.util;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class ThreadPoolUtil {
//	private static final int MIN = 1;
//	private static final int MAX = 5;
	private static final int SIZE = 50;
	private static ExecutorService threadPool;
	
	private ThreadPoolUtil() {
	}

	static {
		threadPool = Executors.newFixedThreadPool(SIZE);
	}

	/**
	 * 执行一个线程
	 * 
	 * @author 刘俊 2016年5月3日
	 * @param task
	 */
	public static void execute(Runnable task) {
		threadPool.execute(task);
	}

	/**
	 * 执行一个带有返回结果的线程
	 * 
	 * @author 刘俊 2016年5月3日
	 * @param task
	 * @return
	 */
	public static <T> Future<T> submit(Callable<T> task) {

		return threadPool.submit(task);
	}

	/**
	 * 返回线程池实例
	 * 
	 * @author 刘俊 2016年5月3日
	 * @param task
	 * @return
	 */
	public static ExecutorService getThreadPool() {
		return threadPool;
	}
}
